<?php
namespace Home\Controller;
use Think\Controller;

class IndexController extends Controller {

    /**
     * 检查是否登录
     */
    public function checkIsLogin() {
        $sessionVal = $_SESSION['USERNAME4SESSION'];
        if (empty($sessionVal)) {
            $url = "/admin.php?m=Home&c=Index&a=login";
            //echo $url;
            header("Location:$url");
        } else {  //如果已经登录，不用处理，继续执行调用出的代码
            //$url = "/admin.php?m=Home&c=Index&a=index";
            //echo $url;
            //header("Location:$url");
        }
    }
    
     /**
     * 校验注册的用户是否已经存在
     */
    public function ckUserIsExesit() {
        $username = $_GET['username'];  //获取表单提交的用户名
        $user = M("Users")->where(array("username" => $username))->find();
        if ($user) {  //用户存在，则登录成功
            echo "1";
        } else {
            echo "0";
        }
    }
    
   /**
     * 登录 采用ajax方式实现
     * 登录成功，转到个人中心，但是现在还没开发个人中心，暂时先刷新本页面
     */
    public function login() {
         $username = $_POST['username'];  //获取表单提交的用户名
         $password = $_POST['password'];  //获取表提交的密码
//
//        //echo "0";
         $user = M("Users")->where(array("username" => $username, "password" => $password))->find();
         if ($user) {  //用户存在，则登录成功
             // 保存用户信息到session里
             //session('USERNAME4SESSION', $username);
             //$_SESSION["USERNAME4SESSION"] = $username;
             Session_Start();
             $_SESSION["USERNAME4SESSION"] = $username;
             
            $url = "/admin.php?m=Home&c=Index&a=index";
            //echo $url;
            header("Location:$url");
          } else {
              $this->assign("username", $username);   //  把用户名回显到页面，减少输入
              $this->assign("tipInfo", "用户名或者密码有误！");
              $this->display();
          }
//        //$this->display();
//        $this->assign("pageTitle", "登录");  //  设置文件的title
        
    }
    
    public function register() {
        $this->display();
    }
    
    /**
     * 退出，直接销毁session里的值
     */
    public function logout() {
        //$currentUrl = $_GET['currentUrl'];  //  获取点击“退出”是所在页面的URL
        //session(null); // 清空当前的session
        //echo "===============".$currentUrl;
        $currentUrl = "/admin.php?m=Home&c=Index&a=login";
        session('WEIBOUSERINFO', null); // 删除name
        $_SESSION["USERNAME4SESSION"] = null;
        header("Location: $currentUrl");  //  退出后转到点击“退出”的页面
        //exit;
    }

    
    /**
     * 转到管理后台的首页
     */
    public function index(){
        $this->checkIsLogin();  //检查用户是否登录了
        $centList = M("Content")->order('public_time DESC')->select();
        $this->assign("centList", $centList);
        $this->display();
    }

    /**
     * 转到文章类型列表
     */
    public function articleType() {
        $this->checkIsLogin();  //检查用户是否登录了
        //取出所有的数据显示在列表上
        $allArt = M('ContentType')->order('id DESC')->select();
        $this->assign('list', $allArt);
        $this->display();
    }


    /**
     * 新增文章
     */
    public function addArtCentent() {
        $this->checkIsLogin();  //检查用户是否登录了

       // 如果是通过submit提交的为post
       if (IS_POST) {
            //$Model = D('Content');
            
            $contentStr = $_POST['content'];
            $data['cont_type'] = $_POST['cont_type'];
            $data['title'] = $_POST['title'];  // 
            $data['ctt_summary'] = $_POST['ctt_summary'];  // 
            $data['content'] = $contentStr;
            //$data['u_id'] = 'ubuntuvim';
            
            //  处理首页显示的图片，默认显示的图片是文章内容的第一张图片，如果没有默认为设定的图片
            // 解析文章的内容，找出第一幅图片的URL
            $data['ctt_img_url'] = $this->getImgFromCt($contentStr); //
            //var_dump($data);
            $Model = M('Content');
            //$flag = $Model->add($data);
             // 验证通过 写入新增数据
            $id = $_GET['id'];
            if ($id) {  //修改
                //$data['id'] = $id; 
                $flag = $Model->where(array('id' => $id))->save($data);
            } else {
                $data['id'] = MD5(microtime());  //指定本系统唯一吗作为id，应为设置到多说评论插件需要唯一的id
                $data['public_time'] = date('Y-m-d H:i', time());  //  大写H表示24小时格式的时间，否则是12小时格式时间
                $flag = $Model->add($data);
            }
            if ($flag) {
                $this->success('保存成功!', U('Home/Index/index'));  //U('/admin.php?m=Admin&c=Index&a=addArtType')
                //$this->success('保存成功!');

            } else {
                $this->success('保存失败！', U('Home/Index/addArtCentent'));
                //$this->success('保存失败!');
                 $id = $_GET['id'];
                if ($id) {  //如果不为空，说明从“修改”进入的，应该把原有的信息显示在页面上
                    $where = array('id' => $id);
                    $ct = M('Content')->where($where)->find();
                    $this->assign('ct', $ct);
                } else {

                }
                //初始化页面的的文章类型列表
                $allContType = M("ContentType")->order('id DESC')->select();
                $this->assign("typeList", $allContType);

            }

           //$this->display();  //转到新增的页面
       } else {
            $id = $_GET['id'];
            if ($id) {  //如果不为空，说明从“修改”进入的，应该把原有的信息显示在页面上
                $where = array('id' => $id);
                $ct = M('Content')->where($where)->find();
                $this->assign('ct', $ct);
            } else {

            }
            //初始化页面的的文章类型列表
            $allContType = M("ContentType")->order('id DESC')->select();
            $this->assign("typeList", $allContType);

            $this->display();  //转到新增的页面
       }

    }

    /**
     * 解析文章的内容，获取第一幅图片的URL
     * @param [[Type]] $contentStr 文章内容
     */
    public function getImgFromCt($contentStr) {
        preg_match_all("<img.*?src=\"(.*?.*?)\".*?>", $contentStr, $match);  //使用正则表达式得到文章的所有图片
       //  判断文章内容里是否包含图片
        $ctt_img_url = "";
        if(is_array($match[1]) && count($match[1],COUNT_NORMAL) > 0) {
            $ctt_img_url = $match[1][0]; // 区出第一张图片
        } else {
            $ctt_img_url = "http://i1.tietuku.com/077e5c917ffc594a.png"; // 如果文章没图片，默认显示设定的图片
        }
        
        return $ctt_img_url;
    }
    
    /**
     * 删除文章
     */
    public function delArtCentent() {
        $this->checkIsLogin();  //检查用户是否登录了
        $id = $_GET['id'];
        if ($id) {   //执行删除
            // 删除 uid=5 的数据记录
            $result = M('Content')->where(array('id' => $id))->delete();
            if ($result) {
                $this->success('删除成功！', U('Home/Index/index'));
            } else {
                $this->success('删除失败！', U('Home/Index/index'));
            }
        } else {
            $this->success('删除失败！', U('Home/Index/index'));
        }
    }

    /**
     * 删除全部文章
     */
    public function delAllArtCentent() {
        $this->checkIsLogin();  //检查用户是否登录了
        $result = M('Content')->where('id != 0')->delete();
        if ($result) {
            $this->success('已成功删除全部文章！', U('Home/Index/index'));
        } else {
            $this->success('删除失败！', U('Home/Index/index'));
        }
    }

    /**
     * 新增文章类型
     */
    public function addArtType() {
        $this->checkIsLogin();  //检查用户是否登录了

       // 如果是通过submit提交的为post
       if (IS_POST) {
            $Model = D('ContentType');
            if (!$Model->create()){ // 创建数据对象
                 // 如果创建失败 表示验证没有通过 输出错误提示信息
                 exit($Model->getError());
            } else {
                 // 验证通过 写入新增数据
                $id = intval($_GET['id']);
                if ($id) {  //修改
                    $flag = $Model->save();
                } else {
                    $flag = $Model->add();
                }
                if ($flag) {

                    $this->success('保存成功!', U('Home/Index/articleType'));  //U('/admin.php?m=Admin&c=Index&a=addArtType')
                    //$this->success('保存成功!');

                } else {
                    $this->success('保存失败！', U('Home/Index/addArtType'));
                    //$this->success('保存失败!');
                }

            }
           //$this->display();  //转到新增的页面
       } else {
            $id = intval($_GET['id']);
            if ($id) {  //如果不为空，说明从“修改”进入的，应该把原有的信息显示在页面上
                $where = array('id' => $id);
                $ct = M('ContentType')->where($where)->find();
                $this->assign('ct', $ct);
            } else {

            }
            $this->display();  //转到新增的页面
       }

    }

    /**
     * 删除文章类型
     */
    public function delArtType() {
        $this->checkIsLogin();  //检查用户是否登录了
        $id = intval($_GET['id']);
        if ($id) {   //执行删除
            // 删除 uid=5 的数据记录
            $result = M('ContentType')->where(array('id' => $id))->delete();
            if ($result) {
                $this->success('删除成功！', U('Home/Index/articleType'));
            } else {
                $this->success('删除失败！', U('Home/Index/articleType'));
            }
        } else {
            $this->success('删除失败！', U('Home/Index/articleType'));
        }
    }

    /**
     * 删除全部的分类
     */
    public function delAllArtType() {
        $this->checkIsLogin();  //检查用户是否登录了
        $result = M('ContentType')->where('id > 0')->delete();
        if ($result) {
            $this->success('全部数据删除成功！', U('Home/Index/articleType'));
        } else {
            $this->success('删除失败！', U('Home/Index/articleType'));
        }
    }
}
